package response

import (
	"lsgfish/server/internal/dto/common"
	"lsgfish/server/internal/model"
)

// UserPaginationResult 用户列表分页查询返回的用户结构体
// @Description 用户分页查询的返回结构，包含总数和数据列表
type UserPaginationResult struct {
	common.PaginationResult[UserManageResult]
}

// UserManageResult 用户管理返回用户基本信息结构体
// @Description 用于管理界面展示的用户基本信息
type UserManageResult struct {
	model.Model
	// 用户账号，用于登录系统
	Account string `json:"account" form:"account" gorm:"size:50;comment:账号;uniqueIndex" binding:"required" example:"user123"`
	// 邮箱，绑定账号，验证账号
	Email string `json:"email" form:"email" gorm:"size:100;comment:邮箱;uniqueIndex" binding:"email" example:"user@example.com"`
	// 用户昵称，用于展示
	NickName string `json:"nickName" form:"nickName" gorm:"size:20;comment:用户昵称" example:"张三"`
	// 用户真实姓名
	Name string `json:"name" form:"name" gorm:"size:20;comment:用户名称" example:"张三丰"`
	// 用户头像URL地址
	Avatar string `json:"avatar" form:"avatar" gorm:"size:500;comment:用户头像" example:"https://example.com/avatar.jpg"`
	// 用户年龄
	Age int16 `json:"age" form:"age" gorm:"comment:年龄" example:"25"`
	// 用户专属邀请码，用于邀请其他用户注册
	InviteCode string `json:"inviteCode" form:"inviteCode" gorm:"size:50;comment:用户自己的邀请码" example:"INVITE123"`
	// 最近登录时间，Unix时间戳
	LoginTime int32 `json:"loginTime" form:"loginTime" gorm:"comment:登录时间" example:"1617235200"`
	// 用户最近登录IP地址
	Ip string `json:"ip" form:"ip" gorm:"size:50;comment:登录ip" example:"127.0.0.1"`
	// 手机号码
	Mobile string `json:"mobile" form:"mobile" gorm:"size:20;comment:手机号码;uniqueIndex" example:"13812345678"`
	// 性别（0:未知 1:男 2:女）
	Gender int8 `json:"gender" form:"gender" gorm:"default:0;comment:性别(0未知 1男 2女)" example:"1"`
	// 用户状态（0:正常 1:停用）
	Status int8 `json:"status" form:"status" gorm:"default:0;comment:用户状态(0正常 1停用)" example:"0"`
	// 用户拥有的角色ID
	RoleId int `json:"roleId" form:"roleId" gorm:"comment:主角色ID" example:"1"`
}
